The present invention is directed to computer graphics, and more specifically, to a system, apparatus, and method of generating an image of a surface composed of multiple layers by modeling the reflection of light from those layers, and which may be used in the production of animated features.
The production of animated features involves the use of computer graphics techniques to produce a visually appealing image that can be used to convey an element of a story. One of the challenges in rendering images for use in animated features is balancing the desire for a visually appealing image of a character or object with the practical issues involved in allocating the computational resources required to produce the image in a feature film environment. Further, although the image need not be fully realistic in all cases, it is desirable that the artist producing the image be able to modify certain attributes of the rendered image, typically by adjusting input parameters of the graphics software, to obtain a visually appealing image that suits the purposes of the story line.
In a typical image rendering process, an element in the scene or image is modeled and then the software models how that element appears to a viewer at a specified location and viewing angle when one or more light sources illuminate(s) the element. This usually also involves modeling how light reflects and scatters from the element and how the reflected or scattered light is viewed. In this regard, most rendering algorithms or methods contain a process for determining the appearance of a point or region of a surface as viewed from a given location (typically defined by a position and viewing angle). This process typically contains two primary stages. First, determining how light will interact with the surface at the region or point on the surface of interest (i.e., computing the values for a reflection model of the region or point), and second, evaluating the reflection model for each light source in the scene, followed by multiplying the result by the light's intensity.
As discussed, one aspect of the image rendering process is that of modeling the reflection of light from a surface or group of layered surfaces. The reflection model (R) at a point x on a surface is a function of the view direction (v) and the light direction (u), and a set of parameters (P) that characterize the surface or region of interest. These parameters may determine the shape or distribution of a function or functions representing the reflection of light from the surface, and may represent for example, the roughness or other characteristics of the surface. In a typical situation, the shape of the function or functions determines the color of the surface and how matte or shiny the surface will appear. For example, there may be one function or distribution of reflected light for each wavelength or wavelength band of interest. The combination of the functions or distributions determines the overall visual appearance and color of the surface. The shape determining parameters (P) may be determined at each point on the surface by evaluating texture maps or executing shaders (software routines that produce values for certain characteristics of a surface as an output). The resulting appearance of the surface as illuminated by a set of lights, each with direction u(l) and intensity L(l), can be expressed in a general form as:Appearance=Sum(over l) in Lights(L(l)R(P(x,v),v,u(l))).In some circumstances, the appearance of a surface is the result of light interacting with multiple material layers (e.g. dust on top of rust on top of copper). In this situation, each layer (m) of the material results in a set of reflection model parameters, Pm, for that layer, where such parameters may include how much that layer is contributing to the result at that point on the surface. In this case, the appearance of the surface at a point x can be expressed as:Appearance=Sum(m) in Layers(Sum l in Lights(L(l)R(Pm(x,v),v,u(l)))).Although an accurate representation of the appearance, evaluating this expression can become unreasonably costly in terms of computational resources as the number of light sources and material layers increases.
In practice, some production environment solutions have kept all of the layers separate and accepted the computational and resource costs of evaluating all of the lights for each of the layers. However, in order to conserve or better allocate computational resources, another approach has been to build a representation of multiple materials by using a single layer to represent the effects of multiple layers. Unfortunately, one disadvantage of this approach is that such a model may become unduly complicated and is often visually inconsistent or otherwise undesirable to an animator or viewer.
As understood by the inventor, modeling the reflection of light sources from a surface or set of surfaces is not addressed by the computer graphics research community in a way that is suitable for production environment rendering for at least two reasons. Firstly, reflection models tend to be based on classes of functions that do not linearly combine (i.e., R(P1+P2)≠R(P1)+R(P2)). Therefore, it is generally not possible to add the parameters from two separate layers in a way that gives the same response as evaluating the two layers independently. Secondly, when a layer only partially covers the layer underneath it, or is transparent (e.g. a varnish coating on wood), allowing the light to pass through it, the light that strikes the underneath layer may have its intensity and direction changed in a way that significantly impacts the resulting appearance. The result is that in general, a very computationally expensive simulation must be performed (and one that can differ significantly depending upon the types of layers involved) in order to get the physically “correct” answer for the reflection problem when modeling the reflection of light from multiple layers.
As a result, determining a general solution to the problem of production scale rendering of the image of a layered surface has largely been ignored. For some special situations, such as layers of paint pigment, closed form expressions have been derived. However these models are often both computationally expensive and limited to a narrow set of materials. Hence these models are of limited value for general use in film production, as they are generally not applicable to different types of surfaces than those for which they are originally derived.
Given the resource constraints involved in production scale rendering of images, it may not be possible to derive a general solution that is “correct” in the sense of being based on an accurate physical model. However, in production rendering the “right” solution is not determined by the precision of the physical model, but instead by a visual image that is “acceptable to the director”. Since the final appearance defines “correct”, it is more important that the inputs to a rendering process can be modified to achieve a desired look within the constraints posed by the production environment.
What is desired is a method, and associated system and apparatus for implementing the method, that can be used to generate an image of a surface or set of surfaces by modeling the reflection of light from that surface or surfaces, and that is suitable for use in the rendering of images in the production of animated features.